Ubiquitous remote access to services, application programs and data has become commonplace as a result of the growth and availability of broadband and wireless network access. As such, users are accessing application programs and data using an ever-growing variety of client devices (e.g., mobile devices, table computing devices, laptop/notebook/desktop computers, etc.). Data may be communicated to the devices from a remote server over a variety of networks including, 3G and 3G mobile data networks, wireless networks such as WiFi and WiMax, wired networks, etc. Clients may connect to a server offering the services, applications programs and data across many disparate network bandwidths and latencies.
In such an environment, where the client devices do not perform true multitasking of multiple applications at the same time, remote sessions may be lost when a CPU cycle is disrupted or if time-outs occur. On mobile devices, which often contain a cellular telephone capability, it is desirable to be able to switch to another application (such as the telephone application or chat application) temporarily, and the resume working with the remote session. However, in so doing, the session may be lost. An additional problem is that running sessions may not be moved from one client device to another or from one server to another. Thus, a session may not be arbitrarily suspended and transferred without losing work.